A5Storage::SubContainer WriteItemToStream Method

Syntax

.WriteItemToStream as L (Data as System::IO::Stream, BYREF LengthReturned as N, BYREF ContentType as C, TargetPath as C)

Arguments

DataSystem::IO::Stream

The stream to which data is written.

BYREF LengthReturnedNumeric

The amount of data returned in the stream.

BYREF ContentTypeCharacter

The content type. E.g. "text/html"

TargetPathCharacter

The item in the Storage container to write to stream.

Returns

ResultLogical

Returns .T. if the operation succeeds, otherwise .F. (see .CallResult for additional error information.)

Description

Retrieves an item from the Storage container using the name provided and writes it to the provided stream variable.

Discussion

You must DIM variables for Stream, LengthReturned, and ContentType prior to making the call.

Example

dim Stream as System::IO::Stream = null_value()
dim ContentType as C
dim Length as N
dim Buffer as B
dim CallResult as CallResult
dim SubContainer as A5Storage::SubContainer = null_value()

Stream = new System::IO::MemoryStream()
CallResult = A5Storage::SubContainer::Open(SubContainer, "Provider='Disk';Container='c:\A5Webroot';", "logs")
if CallResult.Success
    if SubContainer.WriteItemToStream(Stream, Length, ContentType, "Speak.a5w")
        Stream.Seek(0, System::IO::SeekOrigin::Begin)	

        dim Reader as System::IO::BinaryReader = new System::IO::BinaryReader(Stream)
        Buffer = Reader.ReadBytes(Length)
        Stream.close()
    else
        CallResult = SubContainer.CallResult
    end if
end if

if CallResult.Success
    showvar("Type: " + ContentType + crlf() + "Length: " + Length + crlf(2) + buffer, "Success")
else
    showvar(CallResult.Text, "Error")
end if